package cn.ibdsr.human.service;

import cn.ibdsr.human.db.model.Company;
import cn.ibdsr.human.db.model.Job;
import cn.ibdsr.human.transfer.company.*;
import cn.ibdsr.human.transfer.platform.CompanyQueryDTO;

public interface CompanyService {
    String generateCode();
    /**
     * 获取企业信息
     * @param userId
     * @return
     */
    CompanyResponseDTO getCompanyInformation(Long userId);

    /**
     * 保存企业信息
     * @param userId
     * @param companySaveDTO
     * @return
     */
    Long save(Long userId, CompanySaveDTO companySaveDTO);

    /**
     * 撤销认证和重新提交认证
     * @param userId
     * @param companyStatusDTO
     * @return
     */
    Long saveCompanyStatus(Long userId, CompanyStatusDTO companyStatusDTO);

    /**
     * 累计岗位数量
     * @param companyId
     * @param userId
     */
    void computerJobCnt(Long companyId, Long userId,Boolean isAdd);

    /**
     * 分页获取企业信息
     * @param companyQueryDTO
     * @return
     */
    CompanyListDTO getCompanies(CompanyQueryDTO companyQueryDTO);

    /**
     * 平台获取企业信息
     * @param id
     * @return
     */
    CompanyResponseDTO platFormGetCompanyInformation(Long id);

    /**
     * 企业
     * @param userId
     * @param companySaveDTO
     * @return
     */
    Long identifyCompany(Long userId, PlatfromIdentifyCompanyDTO companySaveDTO);

    /**
     * 平台保存企业信息
     * @param userId
     * @param companySaveDTO
     * @return
     */
    Long platformSaveCompany(Long userId, PlatfromIdentifyCompanyDTO companySaveDTO);

    /**
     * 创建企业
     * @return
     */
    Company createCompany();

    /**
     * 企业修改联系人
     * @param userId
     * @param updateConnectUserDTO
     * @return
     */
    Long updateConnectUser(Long userId, UpdateConnectUserDTO updateConnectUserDTO);
}
